iT邦幫忙

0

Who Are You - 不用任何授權,網站開頁那一刻就能讀到你的哪些事(開源)

  • 分享至 

  • xImage
  •  

一、專案資訊

  • 專案名稱:Who Are You(1ms.dog 網路小工具集的一員)
  • 專案簡介:打開頁面後,把任何網站「不用跳出任何授權視窗」就能跑的偵測都跑一遍(目前 127 項),再把結果寫成一段填空句:你大概在哪個城市、用什麼語言和時區、什麼裝置與顯示卡、走哪個網路、瀏覽器指紋穩不穩定。接著像風控系統一樣交叉比對這些讀數,看「偽裝」哪裡露餡(例如開了 VPN,但系統時區、瀏覽器語言、DNS 解析器、WebRTC 位址跟出口 IP 對不上)。
  • 開發狀態:已上線,持續更新

我是作者 香蕉痞 Yang(yt1988),以下是自己的專案。文章初稿有用 AI 協助整理與翻成繁中,技術內容我逐條對照過原始碼與 README。

二、必要連結

  • 實作連結(繁中版):https://who.1ms.dog/zh-tw/
  • GitHub 原始碼(MIT):https://github.com/yt1988/who-are-you

三、技術實作內容

1. 開發動機

常有人問:「我明明開了 VPN/代理,為什麼網站還是知道我在台灣、或直接跳驗證?」答案通常不是 IP,而是 IP 以外的訊號互相矛盾:時區是 Asia/Taipei、Accept-Language 是 zh-TW、DNS 走本地 ISP、WebRTC 透出真實位址。市面上的指紋測試大多只列一堆數值,看不出「網站會怎麼解讀」,所以我想做一個直接告訴你結論、而且每一項都講清楚怎麼讀出來的版本。

2. 技術架構

  • 前端:純 JavaScript(無框架),src/app.js 負責跑偵測、填表、填句子;src/sniffers.mjs 定義每一列偵測與比對規則;src/infer.mjs 負責「讀數代表什麼」(作業系統、瀏覽器、GPU、資料中心判斷等,有單元測試)。
  • 後端:Cloudflare Worker,只回應 GET /api/me,把它在那個請求裡本來就看得到的東西回傳(IP、request.cf 的地理與 ASN、標頭、PTR、伺服器時鐘),不留 log。
  • 連線層探針:另一台直連的小伺服器 probe.1ms.dog(Go),讀 TCP SYN(OS 家族、初始 TTL、MTU、JA4T)、TLS JA4/JA3、HTTP/2 開場(Akamai 指紋)與 HTTP/3 的 QUIC JA4。
  • 建置:scripts/build.mjs 由 src/ 產生 10 種語言的靜態頁、CSP 與 sitemap;npm run smoke 用 headless Chrome 跑每個語言頁,確認所有列、空格、檢查都有填上。

3. 核心邏輯與技術挑戰

  • 「偽裝檢查」要交叉比對而不是單看一項:共 14 列,例如系統時區 vs IP 時區、瀏覽器語言 vs IP 國家、DNS 解析器國家 vs IP 國家、分流(大陸站、海外 IP 服務、ChatGPT、Claude、Cloudflare 看到的出口是否不同)、瀏覽器 RTT 明顯大於 Cloudflare 自己量到的 TCP RTT(中間多了一跳,住宅 IP 也藏不住)。
  • 偵測被竄改的環境:反偵測瀏覽器常改 navigator 屬性或替換 canvas/audio 函式。我檢查 54 個 API 是否還是瀏覽器原生的,並拿新建 iframe 的讀數跟頁面比對;JS 引擎則從錯誤訊息的措辭判斷(V8 / SpiderMonkey / JavaScriptCore),改 UA 改不掉這個。
  • 頁面不能跳動:127 列在讀數前先畫好,每個偵測回來就填自己那列;整段句子等所有空格都到齊才一次填上。
  • 隱私本身:除了查出口和 DNS 需要直接請求幾個外部服務(每列都標明是誰),其他都在瀏覽器裡算完。檢查後會送出少量特徵值做匿名計數(顯示「有多少人跟你一樣」),沒有位址、沒有完整指紋;頁面上有「不要算我」可以關,也尊重 Global Privacy Control。

4. 解決方案與心得

  • 每個會露餡的項目都附「怎麼修」:例如 DNS 洩漏用 Clash fake-ip / TUN、限制 WebRTC、把時區調成跟出口一致,並依你目前的系統(Windows / macOS / iPhone / Android)給對應設定位置。
  • 有「上次 vs 這次」比較(只存在你的瀏覽器),改完設定重跑就知道修好了哪幾項。

歡迎邦友實測,特別想聽:哪一項判斷你覺得不準、或你的環境(公司 proxy、校園網、行動網路)被誤判成什麼。Issue 或直接留言都可以,我會回。


*提醒邦友,使用第三方服務/API 時,請務必評估資安風險與隱私保護
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言